package Proyecto2.Source;

import java.awt.Point;

public class MovimientosCazaL extends Movimientos {
	
	/**
	 * Constructor del hilo que mueve los "Caza Ligeros"
	 * @param fac Factor que varia para que no se superpongan naves.
	 */
	public MovimientosCazaL(int fac){
		factor = fac;
	}
	
	public void preparar() {
		this.nave.setLocation(factor, 0-this.nave.getHeight());
	}

	public void jugar() {
		this.start();
	}
	
	public void run() {
		try {
			MovimientosCazaL.sleep(3000);
		} catch (InterruptedException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}

		Point pos = this.nave.getLocation();
		while( pos.y < nave.getHeight() ) { //Aparecer en pantalla
			try {
				MovimientosCazaL.sleep(100);
				int v = pos.y + 8;
				this.nave.setLocation( pos.x, v);
				pos = this.nave.getLocation();
				this.juego.repaint();
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		while (!nave.estaMuerto()) { 
			
			while( pos.x > 0 && (!nave.estaMuerto()) ) { //Moverse todo a la izquierda
				try {
					MovimientosCazaL.sleep(150);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				int v = pos.x - 8;
				this.nave.setLocation( v, pos.y);
				pos = this.nave.getLocation();
				this.juego.repaint();
				
				verSiPego();
			}
			
			
			 
			while( pos.y < 4*nave.getHeight() && (!nave.estaMuerto()) ) { //Moverse hacia abajo en diagonal
				try {
					MovimientosCazaL.sleep(100);
					int v = pos.y + 8;
					this.nave.setLocation( pos.x+8, v);
					pos = this.nave.getLocation();
					this.juego.repaint();
					
					verSiPego();
					
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			
			
			
			while( pos.x < this.juego.getWidth() - this.nave.getWidth()  && (!nave.estaMuerto()) ) { //Moverse todo a la derecha
				try {
					MovimientosCazaL.sleep(150);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				int v = pos.x + 8;
				this.nave.setLocation( v, pos.y);
				pos = this.nave.getLocation();
				this.juego.repaint();
				
				verSiPego();
			}
			
			
			
			while( pos.y > 2*nave.getHeight() && (!nave.estaMuerto()) ) { //Moverse hacia arriba
				try {
					MovimientosCazaL.sleep(100);
					int v = pos.y - 8;
					this.nave.setLocation( pos.x, v);
					pos = this.nave.getLocation();
					this.juego.repaint();
					
					verSiPego();
					
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			
			while( pos.x > 0 && (!nave.estaMuerto()) ) { // Moverse todo a la izquierda
				try {
					MovimientosCazaL.sleep(150);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				int v = pos.x - 8;
				this.nave.setLocation( v, pos.y);
				pos = this.nave.getLocation();
				this.juego.repaint();
				
				verSiPego();
			}
			while( pos.y > 0  && (!nave.estaMuerto())) { //subir hasta la parte superior de la pantalla
				try {
					MovimientosCazaL.sleep(100);
					int v = pos.y - 8;
					this.nave.setLocation( pos.x, v);
					pos = this.nave.getLocation();
					this.juego.repaint();
					
					verSiPego();
					
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			while( pos.x < this.juego.getWidth() - this.nave.getWidth()  && (!nave.estaMuerto())) { //Moverse todo a la derecha
				try {
					MovimientosCazaL.sleep(150);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				int v = pos.x + 8;
				this.nave.setLocation( v, pos.y);
				pos = this.nave.getLocation();
				this.juego.repaint();
				
				verSiPego();
			}
		} 
		
		juego.sacarNave(nave);
		juego.repaint();
	}
	
	

}
